  // 迭代
    //那么先将根节点放入栈中，然后将右孩子加入栈，再加入左孩子
    vector<int> preorderTraversal(TreeNode* root) {
        vector<int> res;
        if(nullptr == root) return res;
        stack<TreeNode*> s;
        s.push(root);
        while(!s.empty()){
            TreeNode* node = s.top();    // 根节点
            s.pop();  
            res.push_back(node->val);  
            if(node->right != nullptr)
                s.push(node->right);   // 右孩子入栈
            if(node->left != nullptr)
                s.push(node->left);    // 左孩子入栈

        }
        return res;
    }